package com.example.android.recipe067;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.MediaController;
import android.widget.VideoView;
public class Recipe067 extends Activity {
private VideoView mVideoView;
private MediaController mMediaController;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mVideoView = (VideoView)findViewById(R.id.video_view);
// MediaControllerを作って
mMediaController = new MediaController(this);
// MediaControllerセット
mVideoView.setMediaController(mMediaController);
// VideoViewで動画を再生する準備ができた時に
// 呼び出されるリスナー
mVideoView.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
// 3,4秒でMediaControllerが消えちゃうので
// 常に表示させておきたいんだけど
// showメソッドが期待通りに動作してくれない
// durationは正しく取得できてる。
int duration = mVideoView.getDuration();
mMediaController.show(duration);
// リファレンスを信じて0にしてもダメ
// mMediaController.show(0);
// まぁ気にせず再生スタート!
mVideoView.start();
}
});
}
public void onPickAndVideoViewButton(View view) {
startVideoPicker(1);
}
public void onPickAndPlayerButton(View view) {
startVideoPicker(2);
}
public void onPlayYoutubeButton(View view) {
// YouTubeアプリを呼び出す
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(
Uri.parse("http://www.youtube.com/watch?v=yAZYSVr2Bhc"));
startActivity(intent);
}
private void startVideoPicker(int code) {
// インテントを作って
Intent intent = new Intent();
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
// ギャラリーを呼び出す
startActivityForResult(intent, code);
}
protected void onActivityResult(int requestCode,
int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
if (requestCode == 1) {
// VideoViewに動画ファイルのUriをセット
mVideoView.setVideoURI(uri);
} else if (requestCode == 2) {
// プレイヤーを呼び出す
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(uri);
startActivity(intent);
}
}
}
}